from platform import machine

a = []
def record():
    print("====记录成绩====")

    name = input('请输入记录的学生姓名: \t')
    student_id=input('请输入记录的学生学号：\t')
    subject=input('请输入记录的科目：\t')
    score = float(input('请输入记录的成绩(0-100): \t'))

    if score<0 or score>100:
        print('输入的成绩有误，请重新输入')
        return

    for student in a:
        if student['学号'] == student_id:
            print("该学号已经存在，请重新输入")
            return

    a.append({'学号':student_id,'姓名':name,'科目':subject,'成绩':score})
    print('记录成功')


def check():
    print("====查询成绩====")
    print('请选择查询方式：\t')
    print('1.姓名查询')
    print('2.学号查询')
    print('3.课程查询')

    choice =input('请输入查询方式')
    if choice =='1':
        name=input('请输入学生姓名：\t')
        for student in a:
            if student['姓名'] == name :
                print(f"学号为{student['学号']}的{student['姓名']}的{student['科目']}的成绩为{student['成绩']}")
                break
        else:
            print('未查询到该学生姓名，请检查输入是否有误 或 返回记录功能重新记录')
    elif choice =='2':
        id =input("请输入学生学号：\t")
        for student in a:
            if student['学号'] == id:
                print(f"学号为{student['学号']}的{student['姓名']}的{student['科目']}的成绩为{student['成绩']}")
                break
        else:
            print('未查询到该学号，请检查输入是否有误 或 返回记录功能重新记录')

    elif choice=='3':
        course =input('请输入课程名称：')
        for student in a:
            if student['科目'] == course:
                print(f"学号为{student['学号']}的{student['姓名']}的{student['科目']}的成绩为{student['成绩']}")
                break
        else:
            print('未查询到该课程，请检查输入是否有误 或 返回记录功能重新记录')
    else:
        print('无效的选项')

def score_sum():
    print("====统计成绩====")
    scores = []
    course =input('请输入要统计的学科：\t')
    for student in a:
        if student['科目'] == course:
            scores.append(student['成绩'])

    if not scores:
        print(f'未找到{course}的的成绩数据')
        return

    average_scores = sum(scores)/len(scores)
    max_scores= max(scores)
    min_scores =min(scores)
    print(f'课程{course}的平均分为{average_scores}\t 最高分为{max_scores}\t 最低分为{min_scores}\t')


while True:
    print("===================================")
    print('欢迎使用学生成绩管理系统')
    print('===================================')
    print("请选择操作：")
    print("1. 记录成绩")
    print("2. 查询成绩")
    print("3. 统计成绩")
    print("4. 退出")
    ch = input("请输入选项：")
    if ch == '1':
        record()
    elif ch == '2':
        check()
    elif ch == '3':
        score_sum()
    elif ch == '4':
        print("退出程序")
        break
    else:
        print("无效的输入，请重新选择")